#ifndef ENEMYMGR_H
#define ENEMYMGR_H


#include <system/application.h>
#include <vector>
#include <graphics/mesh_instance.h>
#include <graphics/mesh.h>
#include <graphics/model.h>
#include <tgmath.h> 
#include <graphics/renderer_3d.h>
#include <graphics\shader.h>
#include <graphics\vita\shader_vita.h>
#include "Enemy.h"
#include "Bullet.h"
#include "Collision.h"
#include "GameObject.h"
#include "Player.h"
#include <graphics/vita/default_3d_shader_vita.h>
class EnemyMgr
{
public:

	EnemyMgr();
	~EnemyMgr();

	void AddEnemy(abfw::Mesh* mesh, abfw::Matrix44 origin);
	void Update(abfw::Matrix44 enemyMarker, abfw::Vector3 playerPosition, Player* player);
	void Draw(abfw::Renderer3D* render3D, abfw::Colour defaultColour);
	void CleanUp();

	inline float GetEnemyDamage(){return mEnemyDamage;};
	inline int GetEnemiesDead(){return mEnemiesDead;};
	std::vector<Enemy>& GetEnemies();

	inline void SetEnemyDamage(float value){mEnemyDamage += value;};

private:
	std::vector<Enemy> mCurrentEnemies;

	abfw::Matrix44 mEnemyOrigin;
	abfw::Mesh* mEnemyMesh;

	abfw::Mesh* barMesh;
	
	abfw::Vector3 mSpawnPoint[4];
	int mSpawnTimer;
	int mMaxSpawnTime;

	float mEnemyDamage;

	int mEnemiesDead;

};

#endif